﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Models;

namespace Helena.Areas.Clientes.Models
{
    public class LogicaCliente:InterfazLogicaCliente
    {
        DBContext Cliente_contexto = new DBContext();
        DBGenericQueriesUtil<Cliente> Tabla;

        public DBContext context_publico { get { return Cliente_contexto; } }

        public LogicaCliente()
        {
            Tabla = new DBGenericQueriesUtil<Cliente>(Cliente_contexto, Cliente_contexto.t_Cliente);
        }

        public void i_AgregarCliente(ClienteView c_v)
        {
            Tabla.agregarElemento(c_v.deserializa(this));
        }

        public void i_ModificarCliente(ClienteView c_v)
        {
            Cliente c = c_v.deserializa(this);
            Tabla.modificarElemento(c, c.ID);
        }

        public void i_EliminarCliente(int id)
        {
            Tabla.eliminarElemento_logico(id);
        }

        public List<ClienteView> i_RetornarClientes()
        {
            List<Cliente> c = Tabla.retornarTodos();
            List<ClienteView> c_v = new List<ClienteView>();

            foreach (Cliente cliente in c) c_v.Add(new ClienteView(cliente));
            return c_v;
        }

        public ClienteView i_RetornarCliente(int id)
        {
            Cliente c = Tabla.retornarUnSoloElemento(id);
            ClienteView c_v = new ClienteView(c);
            return c_v;
        }
    }
}